﻿using Newtonsoft.Json;

namespace Fadada.FASC.SDK.DotNetCore.Model
{
    /// <summary>
    /// 签署模板详情SignActor，创建签署任务 (基于签署模板)  SignActorTwo，model中有多个，请注意区分
    /// </summary>
    public class SignActor
    {
        /// <summary>
        /// 填写参与方唯一标识，在创造签署模板时定义的唯一标识。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "actorId", Required = Required.Always)]
        public string ActorId { get; set; }

        /// <summary>
        /// 填写顺序填写顺序编号。编号。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "orderNo", Required = Required.AllowNull)]
        public int OrderNo { get; set; }

        /// <summary>
        /// 参与方主体类型：
        /// person: 个人
        /// corp: 企业。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "actorIdentType", Required = Required.Always)]
        public string ActorIdentType { get; set; }

        /// <summary>
        /// 如果该签署方是企业，是否要求企业
        /// 经办人签名：
        /// false: 不需要；
        /// true: 需要
        /// 默认false。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "corpOperatorSign", Required = Required.AllowNull)]
        public bool CorpOperatorSign { get; set; }

        /// <summary>
        /// 该签署任务要求的该方签署人的签署
        /// 方式：
        /// unlimited: 不限制 (签署人可用系统支
        /// 持的任何方式签署)
        /// standard: 标准签名 (签署人必须使用
        /// 通过系统创建的标准签名)
        /// hand_write: 手绘签名 (签署人必须通
        /// 过手绘进行签名)
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signerSignMethod", Required = Required.AllowNull)]
        public string SignerSignMethod { get; set; }

        /// <summary>
        /// 参与方和控件的关系。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signActorFields", Required = Required.AllowNull)]
        public ActorField[] SignActorFields { get; set; }
    }
}